{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Adversarial-Robustness-Toolbox for XGBoost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import xgboost as xgb\n",
    "\n",
    "from sklearn.datasets import load_iris\n",
    "\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "from art.classifiers import XGBoostClassifier\n",
    "from art.attacks import ZooAttack\n",
    "from art.utils import load_mnist\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1 Training XGBoost classifier and attacking with ART Zeroth Order Optimization attack"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_adversarial_examples(x_train, y_train, num_classes):\n",
    "\n",
    "    # Create and fit XGBoost model\n",
    "    num_round = 10\n",
    "    param = {'objective': 'multi:softprob', 'metric': 'multi_logloss', 'num_class': num_classes}\n",
    "    train_data = xgb.DMatrix(x_train, label=y_train)\n",
    "    evallist = [(train_data, 'eval'), (train_data, 'train')]\n",
    "    model = xgb.train(param, train_data, num_round, evallist)\n",
    "\n",
    "    # Create ART classifier for XGBoost\n",
    "    art_classifier = XGBoostClassifier(model=model, nb_features=x_train.shape[1], nb_classes=10)\n",
    "\n",
    "    # Create ART Zeroth Order Optimization attack\n",
    "    zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=20,\n",
    "                    binary_search_steps=10, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                    use_importance=False, nb_parallel=1, batch_size=1, variable_h=0.2)\n",
    "    \n",
    "    # Generate adversarial samples with ART Zeroth Order Optimization attack\n",
    "    x_train_adv = zoo.generate(x_train)\n",
    "\n",
    "    return x_train_adv, model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 Utility functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(num_classes):\n",
    "    x_train, y_train = load_iris(return_X_y=True)\n",
    "    x_train = x_train[y_train < num_classes][:, [0, 1]]\n",
    "    y_train = y_train[y_train < num_classes]\n",
    "    x_train[:, 0][y_train == 0] *= 2\n",
    "    x_train[:, 1][y_train == 2] *= 2\n",
    "    x_train[:, 0][y_train == 0] -= 3\n",
    "    x_train[:, 1][y_train == 2] -= 2\n",
    "    \n",
    "    x_train[:, 0] = (x_train[:, 0] - 4) / (9 - 4)\n",
    "    x_train[:, 1] = (x_train[:, 1] - 1) / (6 - 1)\n",
    "    \n",
    "    return x_train, y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(model, x_train, y_train, x_train_adv, num_classes):\n",
    "    \n",
    "    fig, axs = plt.subplots(1, num_classes, figsize=(num_classes * 5, 5))\n",
    "\n",
    "    colors = ['orange', 'blue', 'green']\n",
    "\n",
    "    for i_class in range(num_classes):\n",
    "\n",
    "        # Plot difference vectors\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].plot([x_1_0, x_2_0], [x_1_1, x_2_1], c='black', zorder=1)\n",
    "\n",
    "        # Plot benign samples\n",
    "        for i_class_2 in range(num_classes):\n",
    "            axs[i_class].scatter(x_train[y_train == i_class_2][:, 0], x_train[y_train == i_class_2][:, 1], s=20,\n",
    "                                 zorder=2, c=colors[i_class_2])\n",
    "        axs[i_class].set_aspect('equal', adjustable='box')\n",
    "\n",
    "        # Show predicted probability as contour plot\n",
    "        h = .01\n",
    "        x_min, x_max = 0, 1\n",
    "        y_min, y_max = 0, 1\n",
    "\n",
    "        xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
    "\n",
    "        Z_proba = model.predict(xgb.DMatrix(np.c_[xx.ravel(), yy.ravel()]))\n",
    "        Z_proba = Z_proba[:, i_class].reshape(xx.shape)\n",
    "        im = axs[i_class].contourf(xx, yy, Z_proba, levels=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n",
    "                                   vmin=0, vmax=1)\n",
    "        if i_class == num_classes - 1:\n",
    "            cax = fig.add_axes([0.95, 0.2, 0.025, 0.6])\n",
    "            plt.colorbar(im, ax=axs[i_class], cax=cax)\n",
    "\n",
    "        # Plot adversarial samples\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].scatter(x_2_0, x_2_1, zorder=2, c='red', marker='X')\n",
    "        axs[i_class].set_xlim((x_min, x_max))\n",
    "        axs[i_class].set_ylim((y_min, y_max))\n",
    "\n",
    "        axs[i_class].set_title('class ' + str(i_class))\n",
    "        axs[i_class].set_xlabel('feature 1')\n",
    "        axs[i_class].set_ylabel('feature 2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2 Example: Iris dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### legend\n",
    "- colored background: probability of class i\n",
    "- orange circles: class 1\n",
    "- blue circles: class 2\n",
    "- green circles: class 3\n",
    "- red crosses: adversarial samples for class i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\teval-merror:0.11\ttrain-merror:0.11\n",
      "[1]\teval-merror:0.11\ttrain-merror:0.11\n",
      "[2]\teval-merror:0.11\ttrain-merror:0.11\n",
      "[3]\teval-merror:0.1\ttrain-merror:0.1\n",
      "[4]\teval-merror:0.08\ttrain-merror:0.08\n",
      "[5]\teval-merror:0.08\ttrain-merror:0.08\n",
      "[6]\teval-merror:0.06\ttrain-merror:0.06\n",
      "[7]\teval-merror:0.06\ttrain-merror:0.06\n",
      "[8]\teval-merror:0.06\ttrain-merror:0.06\n",
      "[9]\teval-merror:0.06\ttrain-merror:0.06\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 2\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train, num_classes)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\teval-merror:0.153333\ttrain-merror:0.153333\n",
      "[1]\teval-merror:0.14\ttrain-merror:0.14\n",
      "[2]\teval-merror:0.133333\ttrain-merror:0.133333\n",
      "[3]\teval-merror:0.14\ttrain-merror:0.14\n",
      "[4]\teval-merror:0.133333\ttrain-merror:0.133333\n",
      "[5]\teval-merror:0.126667\ttrain-merror:0.126667\n",
      "[6]\teval-merror:0.12\ttrain-merror:0.12\n",
      "[7]\teval-merror:0.113333\ttrain-merror:0.113333\n",
      "[8]\teval-merror:0.1\ttrain-merror:0.1\n",
      "[9]\teval-merror:0.113333\ttrain-merror:0.113333\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 3\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train, num_classes)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3 Example: MNIST"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 Load and transform MNIST dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test), min_, max_ = load_mnist()\n",
    "\n",
    "n_samples_train = x_train.shape[0]\n",
    "n_features_train = x_train.shape[1] * x_train.shape[2] * x_train.shape[3]\n",
    "n_samples_test = x_test.shape[0]\n",
    "n_features_test = x_test.shape[1] * x_test.shape[2] * x_test.shape[3]\n",
    "\n",
    "x_train = x_train.reshape(n_samples_train, n_features_train)\n",
    "x_test = x_test.reshape(n_samples_test, n_features_test)\n",
    "\n",
    "y_train = np.argmax(y_train, axis=1)\n",
    "y_test = np.argmax(y_test, axis=1)\n",
    "\n",
    "n_samples_max = 200\n",
    "x_train = x_train[0:n_samples_max]\n",
    "y_train = y_train[0:n_samples_max]\n",
    "x_test = x_test[0:n_samples_max]\n",
    "y_test = y_test[0:n_samples_max]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 Train XGBoostClassifier classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\teval-merror:0.055\ttrain-merror:0.055\n",
      "[1]\teval-merror:0.04\ttrain-merror:0.04\n",
      "[2]\teval-merror:0.015\ttrain-merror:0.015\n",
      "[3]\teval-merror:0.01\ttrain-merror:0.01\n",
      "[4]\teval-merror:0.005\ttrain-merror:0.005\n",
      "[5]\teval-merror:0\ttrain-merror:0\n",
      "[6]\teval-merror:0\ttrain-merror:0\n",
      "[7]\teval-merror:0\ttrain-merror:0\n",
      "[8]\teval-merror:0\ttrain-merror:0\n",
      "[9]\teval-merror:0\ttrain-merror:0\n"
     ]
    }
   ],
   "source": [
    "num_round = 10\n",
    "param = {'objective': 'multi:softprob', 'metric': 'multi_logloss', 'num_class': 10}\n",
    "train_data = xgb.DMatrix(x_train, label=y_train)\n",
    "validation_data = train_data\n",
    "evallist=[(train_data, 'eval'), (train_data, 'train')]\n",
    "model = xgb.train(param, train_data, num_round, evallist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 Create and apply Zeroth Order Optimization Attack with ART"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "art_classifier = XGBoostClassifier(model=model, nb_features=x_train.shape[1], nb_classes=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=100,\n",
    "                binary_search_steps=20, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                use_importance=False, nb_parallel=10, batch_size=1, variable_h=0.05)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "x_train_adv = zoo.generate(x_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_test_adv = zoo.generate(x_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 Evaluate XGBoostClassifier on benign and adversarial samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Score: 1.0000\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_train))\n",
    "score = np.sum(y_train == np.argmax(y_pred, axis=1)) / y_train.shape[0]\n",
    "print(\"Benign Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Predicted Label: 5\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_train[0:1, :])), axis=1)\n",
    "print(\"Benign Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Score: 0.5950\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_train_adv))\n",
    "score = np.sum(y_train == np.argmax(y_pred, axis=1)) / y_train.shape[0]\n",
    "print(\"Adversarial Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Predicted Label: 8\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_train_adv[0:1, :])), axis=1)\n",
    "print(\"Adversarial Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Score: 0.6450\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_test))\n",
    "score = np.sum(y_test == np.argmax(y_pred, axis=1)) / y_test.shape[0]\n",
    "print(\"Benign Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Predicted Label: 7\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_test[0:1, :])), axis=1)\n",
    "print(\"Benign Test Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Score: 0.3800\n"
     ]
    }
   ],
   "source": [
    "y_pred = model.predict(xgb.DMatrix(x_test_adv))\n",
    "score = np.sum(y_test == np.argmax(y_pred, axis=1)) / y_test.shape[0]\n",
    "print(\"Adversarial Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Predicted Label: 3\n"
     ]
    }
   ],
   "source": [
    "prediction = np.argmax(model.predict(xgb.DMatrix(x_test_adv[0:1, :])), axis=1)\n",
    "print(\"Adversarial Test Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "venv36",
   "language": "python",
   "name": "venv36"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
